/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package controlo;


import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;
import modelo.Modelo_Vendas;
import utilizador_bd.ConectBD;

/**
 *
 * @author Daniel
 */
public class ControloVendas {
    int codprod;
    int CodCliente;
    ConectBD conectvendas = new ConectBD();
    public void Inserirvendas(modelo.Modelo_Vendas vend){

        
    
       
        try {
                 achaCodProduto(vend.getProdutosvendas());
        conectvendas.conexao();
            PreparedStatement pst = conectvendas.con.prepareStatement("insert into items_prod_vendas (id_venda, id_produto, quantidade_produto)values (?,?,?)");
             pst.setInt(1, vend.getCod_vendas());
             pst.setInt(2, codprod);
             pst.setInt(3, vend.getQuantidade());
            

        pst.execute();
                   int qntd=0, result=0;
            
            conectvendas.executaSQL("select * from produtos where descricao ='"+vend.getProdutosvendas()+"'");
            conectvendas.re.first();
            qntd = conectvendas.re.getInt("quantidade");
            result = qntd - vend.getQuantidade();
            pst = conectvendas.con.prepareStatement("update produtos set quantidade=? where descricao=?");
            pst.setInt(1, result);
                        pst.setString(2, vend.getProdutosvendas());
                        pst.execute();
                   JOptionPane.showMessageDialog(null, "adicionado com sucesso");

        conectvendas.desconecta();
        } catch (SQLException ex) {
           JOptionPane.showMessageDialog(null, "Erro ao guardar!:" +ex.getMessage());
        }
       

                     
         
}
    public void achaCodProduto(String nome){

            conectvendas.conexao();

            conectvendas.executaSQL("select * from produtos where descricao= '"+nome+"'" );
        try {
            conectvendas.re.first();
            codprod = conectvendas.re.getInt("cod_prod");
           conectvendas.desconecta();
        } catch (SQLException ex) {
           JOptionPane.showMessageDialog(null, "Erro na inserção:" +ex.getMessage());
        }
    
}
    public void fechaVenda(Modelo_Vendas mod){
        achaCliente(mod.getClientesvendas());
               conectvendas.conexao();

        try {
            PreparedStatement pst =  conectvendas.con.prepareStatement("update vendas set  data=?, clientesvendas=?, valortotal=?  where cod_vendas=?");
        pst.setString(1, mod.getData());
        pst.setInt(2, CodCliente);
        pst.setFloat(3, mod.getValortotal());
        pst.setInt(4, mod.getCod_vendas());
            pst.execute();
           JOptionPane.showMessageDialog(null, "Venda terminada!");

        } catch (SQLException ex) {
           JOptionPane.showMessageDialog(null, "Erro ao fechar venda!:" +ex.getMessage());
        }
        
        conectvendas.desconecta();

    }
    
    public void achaCliente (String nome){
        
        conectvendas.conexao();
        
        try {
           conectvendas.executaSQL("select *  from clientes where nome='"+nome+"'");
           conectvendas.re.first();
           
           
           CodCliente = conectvendas.re.getInt("nrcartao");
           
           
        } catch (SQLException ex) {
           JOptionPane.showMessageDialog(null, "Erro ao achar cliente!:" +ex.getMessage());
        }
        
        conectvendas.desconecta();
        
    }
    
    
}

